package Hw;

import java.util.Scanner;
/*
    我国的居民身份证号码，由十七位数字本体码和一位数字校验码组成。
    请定义方法判断用户输入的身份证号码是否合法，并在主方法中调用方法测试结果。
    规则为：
        1. 号码为18位
        2. 不能以数字0开头
        3. 前17位只可以是数字
        4. 最后一位可以是数字或者大写字母X。
 */
public class Hw809 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身份证号码");
        String s = sc.nextLine();
        System.out.println(check(s));
    }
    public static boolean check(String s){
        char[] charArray = s.toCharArray();
        if (charArray.length == 18 && charArray[0] != 0){//号码为18位,且不能以数字0开头
            for (int i = 0; i < 18; i++) {
                switch (charArray[i]){
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                    case '8':
                    case '9':
                    case '0':break;//是数字则判断下一位
                    default://非数字 只有最后一位且为大写X才可以
                        return i == 17 && charArray[i] == 'X';//最后一位是X时 可以
                }
            }
            return true;//全为数字时 可以
        }
        return false;//其他 不可以
    }
}
